package mobile.ui.movimiento;

import superwaba.ext.xplat.ui.MultiEdit;
import waba.ui.*;
import waba.fx.*;
import waba.sys.*;
import waba.util.*;
import mobile.dominio.*;
import mobile.persistencia.*;
import mobile.ui.LaAnfitriona;
import moio.util.*;

public class NuevoMovimiento extends Container{
	private RadioGroup rgentradasalida;
	private Radio rdsalida, rdentrada;
	private Edit txtmonto;
	private MultiEdit txtdescripcion;
	private Button btnAceptar, btnCerrar;
	public static Movimiento unMovimiento;
	
	public void onStart(){
		Button.commonGap = 1;
		
		Label tituloradio = new Label("Tipo de Movimiento: ");
		add(tituloradio,LEFT + 4,TOP + 15);
		
		rgentradasalida = new RadioGroup();
		add(rdsalida = new Radio("Salida",rgentradasalida),LEFT + 5,AFTER + 5);
		add(rdentrada = new Radio("Entrada",rgentradasalida),LEFT + 5,AFTER + 2);
		rdsalida.setChecked(true);
		
		txtmonto = new Edit("xxxxxxxxxxxx");
		add( new Label("Monto: "), LEFT + 5, AFTER + 10);
		add(txtmonto);
		txtmonto.setRect( AFTER, SAME, 100, PREFERRED );
		txtmonto.setMode(Edit.CURRENCY);
		
		Label titdescripcion = new Label("Descripción: ");
		add(titdescripcion,LEFT + 4,AFTER + 6);
		
		txtdescripcion = new MultiEdit("",4,1);
		add(txtdescripcion);
		txtdescripcion.setRect(LEFT + 5, AFTER, FILL,120);
		
		add(btnAceptar = new Button("   Aceptar   "), RIGHT, BOTTOM - 2);
		add(btnCerrar = new Button("   Cerrar   "), BEFORE - 2, SAME);
		
		if (Settings.isColor){
			Color clrBack = LaAnfitriona.defaultBackColor;
			Color clrFore = LaAnfitriona.defaultForeColor;
			btnAceptar.setBackColor(clrBack);
			btnAceptar.setForeColor(clrFore);
			btnCerrar.setBackColor(clrBack);
			btnCerrar.setForeColor(clrFore);
		}
		update();
	}
	
	public void onEvent(Event e){
		switch (e.type){
		case ControlEvent.PRESSED:
			if (e.target == btnAceptar){
				Movimiento unMov = null;
				boolean actualizar = true;
				if (unMovimiento == null){
					unMov = new Movimiento();
					actualizar = false;
				}else{
					unMov = unMovimiento;
				}
				
				unMov.setDescripcion(txtdescripcion.getText());
				unMov.setMonto(Convert.toDouble(txtmonto.getText()));
				
				if(rgentradasalida.getSelectedIndex() == 0){
					unMov.setTipomovimiento(Movimiento.SALIDA);
				}else{
					unMov.setTipomovimiento(Movimiento.ENTRADA);
				}
				
				PMovimiento.instance.write(unMov, actualizar);
				unMovimiento = null;
				if(actualizar == false){
					LaAnfitriona.swapTo(LaAnfitriona.MENUMOVIMIENTO);
				}else{
					LaAnfitriona.swapTo(LaAnfitriona.BUSCARMOVIMIENTO);
				}
				
			} else if (e.target == btnCerrar){
				unMovimiento = null;
				LaAnfitriona.swapTo(LaAnfitriona.BUSCARMOVIMIENTO);
			}
		}
	}
	
	public void update(){
		if (unMovimiento != null){
			if (unMovimiento.getTipomovimiento() == Movimiento.ENTRADA){
				rdentrada.setChecked(true);
			}else{
				rdsalida.setChecked(true);
			}
			
			txtmonto.setText(Convert.toString(unMovimiento.getMonto()));
			txtdescripcion.setText(unMovimiento.getDescripcion());
		}else{
			txtmonto.clear();
			txtdescripcion.clear();
		}
	}
	
	public void onAdd(){
		update();
	}
}
